<div class="doc-item" id="doc-1414"><h2 class="doc-item-name">transaction<span class="namespace">(clojure.contrib.sql)</span></h2><p class="macro">Macro</p><ul class="var-arglists"><li>(<span class="var-name">transaction</span> &amp; body)</li></ul><div class="var-docstring"><p>Evaluates body as a transaction on the open database connection. Any
  nested transactions are absorbed into the outermost transaction. By
  default, all database updates are committed together as a group after
  evaluating the outermost body, or rolled back on any uncaught
  exception. If set-rollback-only is called within scope of the outermost
  transaction, the entire transaction will be rolled back rather than
  committed when complete.</p></div><div class="var-source"><pre>; clojure/contrib/sql.clj:56
(defmacro transaction
  [&amp; body]
  `(transaction* (fn [] ~@body)))</pre></div><div class="license"><p>Copyright (c) Rich Hickey. All rights reserved.</p><p>The use and distribution terms for this software are covered by the <a href="http://opensource.org/licenses/eclipse-1.0.php">Eclipse Public License 1.0</a>, which can be found in the file
          epl-v10.html at the root of this distribution. By using this software
          in any fashion, you are agreeing to be bound by the terms of this
          license. You must not remove this notice, or any other, from this
          software.</p></div></div>